package dao;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.PreparedStatement;
import modelo.Falha;
import java.sql.ResultSet;
import util.DBUtil;

public class FalhaDAO {
	
	private Connection con;
	private int res; 		
	private static FalhaDAO instancia;

	private FalhaDAO(){
		con = DBUtil.getConnection();
	}
	
	public static FalhaDAO getInstancia(){
		if (instancia == null){
			instancia = new FalhaDAO();
		}
		return instancia;
	}
	
	public boolean inserir(Falha novaFalha){
			try {
				Statement st = con.createStatement();
				String sql = "insert into falha (cod, descr) values" +
						" ('"+novaFalha.getCodFalha()+"'," +
						"'"+novaFalha.getDescrFalha()+"')";
				System.out.println(sql);
				res = st.executeUpdate(sql);
				
				if(res==0)
					return false;
				else
					return true;
				
			} catch (SQLException er) {
				// TODO Auto-generated catch block
				er.printStackTrace();
			}
			
			return false;
	}

	public Falha buscar (Falha falha){

		try {
			// preparar o statement
			String sql = "select * from falha where cod = ? ";
			PreparedStatement comandoSql = con.prepareStatement(sql);
			comandoSql.setString(1,falha.getCodFalha());
			
			ResultSet resultado = comandoSql.executeQuery();

			if(resultado.next()){
				Falha f = new Falha();
				
				f.setCodFalha(resultado.getString("cod"));
				f.setDescrFalha(resultado.getString("descr"));
				
				return f;
			}
			
		}
		catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}
	
	public boolean excluir(Falha falha) {
		// TODO Auto-generated method stub
		String sql = "delete from falha where cod = ?";
		try {
			PreparedStatement comandoSql = con.prepareStatement(sql);
			comandoSql.setString(1, falha.getCodFalha());
			int cont = comandoSql.executeUpdate();
			
			if(cont==0){
				return false;
			}
			else{
				return true;
			}
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return false;
	}

	public boolean alterar(Falha falha) {
		// TODO Auto-generated method stub
		
		String sql = "update falha set descr = '" +
		falha.getDescrFalha() +	" 'where cod = ?";
		
		try {
			PreparedStatement comandoSql = con.prepareStatement(sql);
			comandoSql.setString(1, falha.getCodFalha());
			int cont = comandoSql.executeUpdate();
			
			if(cont==0){
				return false;
			}
			else{
				return true;
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return false;
	}
}
